public class Test {
    public static void main() {
        // 使用switch时，如果遗漏了break，就会造成严重的逻辑错误
        int catogery = 1;
        switch (catogery) {
            case 1:
                System.out.println("Category 1");
                break;
            case 2:
                System.out.println("Category 2");
                break;
            default:
                System.out.println("Other Category");
        }
        // 使用新的switch语法，不但不需要break，还可以直接返回值
        String role = "admin";
        switch (role) {
            case "admin" -> System.out.println("Administrator");
            case "user" -> {
                System.out.println("Regular User");
                System.out.println("Welcome!");
            }
            default -> System.out.println("Guest");
        }

        // yield关键字，可以在switch表达式中返回值
        int score = -10;
        String grade = switch (score / 10) {
            // 直接返回值
            case 10, 9 -> "A";
            case 8 -> "B";
            case 7 -> "C";
            case 6 -> "D";
            default -> {
                // 通过yield返回值
                if (score >= 0) {
                    yield "F";
                } else {
                    yield "Invalid score";
                }
            }
        };
        System.out.println("Grade: " + grade);
    }
}